const util = require('../../utils/util') 
const getbanklist = require('../../config.js').getbanklist;//题目集
const addQ = require('../../config.js').addQ;//答题

// pages/proSets/proSets.js 
Page({ 
  /**
   * 页面的初始数据
   */
  data: {
    bgpic: "../../image/bg.png", 
    curIndex: 5,//当前点击答案的索引,5是超过答案的索引
    isRight:3,//当前点击答案 获取是否正确，3是超过正确和错误的
    isShowModal: false,
    modaltype:2,//0 答错，1 超时，2成功
    timeObj:"",//定时器对象
    remTime:"",//剩余时间
    modalInfo: [{
      name: "您答错了！",
      headpic: "../../image/wrong_head.png",
      btnpic: "../../image/restart.png",
    }, {
      name: "答题时间已过",
      headpic: "../../image/wrong_head.png",
      btnpic: "../../image/restart.png", 
    }, {
      name: "闯关成功！",
      headpic: "../../image/right_head.png",
      btnpic: "../../image/onemore.png",
    }],
    // 失败的提示
    errorTip: [{
      name: 'div',
      attrs: {
        style: 'color:#262523;font-size:0.6rem'
      },
      children: [
        {
          name: "strong",
          children: [{
            type: "text",
            text: '提示：'
          }]
        },
        {
          name: "label",
          children: [{
            type: "text",
            text: '将此游戏分享给朋友可继续答题哦！'
          }]
        },
        {
          name: "label",
          attrs: {
            style: 'color:#1ccab2;font-size:0.5rem'
          },
          children: [{
            type: "text",
            text: '(必须分享到微信群里才有效，分享给个人无效的哦)'
          }]
        }, {
          name: "div",
          children: [{
            type: "text",
            text: '或者你也可以选择重新开始答题'
          }]
        }]
    }],
    // 成功的提示
    rightTip: [{
      name: 'div',
      attrs: {
        style: 'color:#262523;font-size:0.6rem'
      },
      children: [
        {
          name: "div",
          children: [{
            type: "text",
            text: '喔哦~厉害啦，为你打call！！！这么好玩的游戏 给小伙伴们推荐一下可好？'
          }]
        },
        {
          name: "div",
          children: [{
            type: "text",
            text: '或者你也可以再来一局，更多难关等着你哦！'
          }]
        }
      ]
    }],
    // 当前问题的数据
    contData:[],//题目集合
    cont: {
      alls: '',//一共20题，随机的
      cur: 1,//当前第几题
      tm: 10,//当前题目答题时间10s 
      title: '',//题目
      rightAnswer:null,//正确的答案
      answerNumber:1,//答题次数,分享的话则在原基础上面+1，重新开始则以1为基础加1
      id: null,//题目Id
      answer: [//答案
        // {
        //   content: "李白",
        //   isRight:1
        // }, 
      ]
    },

  },
// 获取问题数据集合
  getData: function () {
    util.showLoading('数据请求中···')
    var that = this;
    var pages = getCurrentPages()    //获取加载的页面 
    var currentPage = pages[pages.length - 1]    //获取当前页面的对象   
    var options = {
      url: getbanklist,
      data: {
        difficultyLevel: currentPage.options.level
      },
      success: function (res) {
        that.setData({
          'contData': res,
          'cont.alls': res.length,//一共几题，随机的
        })
        that.curData(res)
        that.setTime();

      },
      fail: function (err) {
        if (err.code == 1000) {//题库为空
          that.setData({
            cont: {}
          })
          util.confirmMsg({
            content: '暂无题目，请选择其他级别的题目',
            success: function () {
              wx.navigateBack()
            },
            fail: function () {
              wx.navigateBack()
            }
          })
        }
      },
      complete: function () {
        util.hideLoading()
      }
    }
    util.XHR(options)
  },
  // 当前数据
  curData: function (res){
    var cur = this.data.cont.cur - 1;
    var rightAns = "";
    res[cur].answerList.map(function (item, i) {
      if (item.isRight) {
        rightAns = item.content
      }
    })
    this.setData({
      'cont.tm': res[cur].answerTime,//回答时间 （秒）
      'cont.id': res[cur].questionId,
      'cont.title': res[cur].title,//题目
      'cont.answer': res[cur].answerList,//题目
      'remTime': res[cur].answerTime,//剩余时间
      'cont.rightAnswer': rightAns,//正确答案
    })
  },
  // 弹窗的 再来一局和 重新开始，跳转到首页
  restartFn: function (e) {  
    clearTimeout(this.timeObj); 
    // wx.reLaunch({
    //   url: '/pages/index/index',
    //   success:function(){
    //     // console.log(2)
    //   },
    //   fail:function(res){
    //     // console.log(3)
    //   }
    // })
    wx.navigateBack() 
  },
  // 点击答案
  itemAnFn: function (e) {  
      clearTimeout(this.timeObj)
      var item = e.currentTarget.dataset;
      var tms = this.data.cont.tm - this.data.remTime;

      var options = {
        url: addQ,
        data: {
          "questionId": this.data.cont.id,  //题目Id
          "answer": item.answer,  //回答答案
          "rightAnswer": this.data.cont.rightAnswer,  //正确答案
          "answerTime": tms,      //答题所花费时间
          "questionNumber": this.data.cont.cur, //题目序号(第一题、第二题)
          "answerNumber": this.data.cont.answerNumber  //答题次数 
        },
        success: function (res) {
          // that.setData({
          //   'contData': res, 
          // })
        },
        fail: function (err) { 
          console.log(err.msg)
        },
        complete: function () {
          util.hideLoading()
        }
      }

      if(!item.right){//错误
        this.setData({
          curIndex: item.index,
          isRight: item.right,
          modaltype:0,
          isShowModal:true
        }) 
      }else{//成功,题目加1，时间还原成10s ,题目内容从这里修改替换 
        if (this.data.cont.alls == this.data.cont.cur ){//最后一题答对，直接提示成功
         this.setData({
           modaltype:2,
           isShowModal:true
         })
        }else{
          this.setData({
            curIndex: 5,
            isRight: 3,
            'cont.tm': 10,
            'cont.cur': this.data.cont.cur + 1
          });
          this.curData(this.data.contData) 
          this.setTime() 
        }
      
      } 
      util.XHR(options) 
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showShareMenu({
      withShareTicket: true
    })  
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  // 倒计时
  setTime: function () {
    let that = this;
    let tm = this.data.remTime;
    if (tm > 0) {
      tm--;
      that.timeObj = setTimeout(function () {
        that.setData({
          remTime: tm
        })
        that.setTime()
      }, 1000)
    }else{//超时
      // modaltype:2,//0 答错，1 超时，2成功 
      this.setData({ 
        modaltype: 1,
        isShowModal: true,
        remTime: 0 
      })  
    }
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function (options) { 
    this.getData(); 
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (res) {
    let that = this;
    if (res.from === 'button') {
      // 来自页面内转发按钮 
    }
    return {
      title: '答题快快',
      path: '/pages/index/index',
      success(res) { 
        clearTimeout(that.timeObj); 
        if (that.data.modaltype !=2 ){//只邀请 群聊
          if (res.shareTickets) {//群聊
            // 关闭弹窗，重新开始，时间恢复到10s 
            wx.showModal({
              title: '提示',
              content: '分享成功,继续答题',
              success: function (res) {  
               var num = that.data.cont.answerNumber+1;
                that.setData({
                  isShowModal: false,
                  'cont.tm': 10,
                  curIndex: 5,
                  isRight: 3, 
                  'cont.answerNumber':num,
                  remTime: that.data.cont.tm 
                }) 
                
                that.setTime() 
                
              }
            })
          } else { 
            wx.showModal({
              title: '提示',
              content: '必须分享到微信群里才可以继续答题，分享给个人无效的哦',
              success: function (res) { 

               }
            })
          }

        }else{//成功的话 都可以
          wx.showModal({
            title: '提示',
            content: '分享成功',
            success: function (res) {
              wx.navigateBack() 
             }
          })

        }
      
      },
      file(res) {

      },
      complete() {

      }
    }
  },
 

})